﻿/*
* @author: yunyang
* @date: 2013/05/22
* @description: 字符串的原型方法
*/


/**
 * 利用占位符格式化字符串
 * 例如："你好，{0}, {1}".format('bintang', 'Nice to meet you!') = "你好，bintang, Nice to meet you!";
 */
String.prototype.format = function () {
    var s = this, i = arguments.length;

    while (i--) {
        s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]);
    }
    return s;
};

/**
* 解析字符串的EL表达式。
* 例如：
*       var o = {name:"bintang"}
*       "你好，{name}".formatEL(o) = "你好，bintang"
*
* @param o 数据对象
* @return 返回解析后的字符串
*/
String.prototype.formatEl = function (o) {
    var s = this;

    if (typeof (o) != 'object') return '';

    return s.replace(new RegExp('\\{([^\\{\\}]*?)\\}', 'igm'), function ($, $1) {
        // return o[$1]?o[$1]:$;
        return o[$1];
    });
};